package cn.com.gridinfo.sooc.core.my.msg.activity;

import android.content.Intent;
import android.os.Bundle;
import android.text.Html;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.jeremy.arad.Arad;
import com.jeremy.arad.utils.AnimUtil;
import com.jeremy.arad.utils.ImageGetterUtil;
import com.jeremy.arad.utils.Log;
import com.jeremy.arad.utils.StringUtils;

import org.w3c.dom.Text;

import java.util.HashMap;
import java.util.List;

import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import cn.com.gridinfo.sooc.LoadingActivity;
import cn.com.gridinfo.sooc.R;
import cn.com.gridinfo.sooc.base.BaseSoocActivity;
import cn.com.gridinfo.sooc.common.LocalMark;
import cn.com.gridinfo.sooc.core.my.msg.bean.PushNotice;
import cn.com.gridinfo.sooc.core.my.msg.dao.NoticeDao;
import cn.com.gridinfo.sooc.utils.MessageUtils;
import cn.com.gridinfo.sooc.utils.TypeConvert;
import cn.com.gridinfo.sooc.utils.widget.textview.HtmlImageGetterUtil;


/**
 * 我的通知 主界面
 * Created by liuxiaochen on 2016/1/5.
 */
public class MsgActivity extends BaseSoocActivity {
    @InjectView(R.id.tstz)
    TextView tstz;//推送通知
    @InjectView(R.id.ts_time)
    TextView tsTime;//推送通知时间
    @InjectView(R.id.kctz)
    TextView kctz;//课程通知
    @InjectView(R.id.kc_time)
    TextView kcTime;// 课程通知时间
    @InjectView(R.id.tltz)
    TextView tltz;// 讨论通知
    @InjectView(R.id.tl_time)
    TextView tlTime;// 讨论通知时间
    @InjectView(R.id.xttz)
    TextView xttz;// 系统通知
    @InjectView(R.id.xt_time)
    TextView xtTime;// 系统通知时间
    @InjectView(R.id.ts_rl)
    RelativeLayout tsRl;//推送通知（用来点击进入）
    @InjectView(R.id.kc_rl)
    RelativeLayout kcRl;//课程通知（用来点击进入）
    @InjectView(R.id.tl_rl)
    RelativeLayout tlRl;//讨论通知（用来点击进入）
    @InjectView(R.id.xt_rl)
    RelativeLayout xtRl;//系统通知（用来点击进入）
    @InjectView(R.id.tsMessage)
    TextView tsMessage;//推送通知小红点
    @InjectView(R.id.kcMessage)
    TextView kcMessage;//课程通知小红点
    @InjectView(R.id.tlMessage)
    TextView tlMessage;//讨论通知小红点
    @InjectView(R.id.xtMessage)
    TextView xtMessage;//系统通知小红点
    private Long kcInput_time, tlInput_time, sysInput_time;//拿到传来的时间戳
    NoticeDao noticeDao = new NoticeDao();
    private String suid;
    HashMap<String, Object> noticeInfo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_msg_main);
        ButterKnife.inject(this);

        noticeInfo = new HashMap<>();
        suid = Arad.preferences.getString(LocalMark.SERVER_ID.getName().toString()) + "_"
                + Arad.preferences.getString(LocalMark.USER_UID.getName().toString());
        //获取最新的一条推送通知
        noticeInfo = noticeDao.queryLatestNotice("suid='" + suid + "'");

        //推送通知信息
        if (noticeInfo.isEmpty()) {
            //没有的时候隐藏
            tsRl.setVisibility(View.GONE);
        } else {
            tstz.setText(noticeInfo.get("noticeTitle").toString());//推送通知的标题
            tsTime.setText(noticeInfo.get("createTime").toString());//推送通知的时间
            if (noticeInfo.get("status").equals("0")) {
                tsMessage.setVisibility(View.VISIBLE);
            } else {
                tsMessage.setVisibility(View.GONE);
            }
        }

        //获取课程通知,讨论通知,系统通知时间, 以及消息首条内容
        if (getIntent() != null) {
            showMessge();
        }

    }

    //设置标题
    @Override
    public String setupToolBarTitle() {
        return "消息";
    }

    @Override
    public boolean setupToolBarLeftButton(ImageView leftButton) {
        return true;
    }

    //点击回退
    @OnClick(R.id.toolbar_leftbtn)
    void goBack() {
        finish();
    }

    /**
     * 显示消息数据,以及红点标示
     */
    private void showMessge() {
        //获取课程通知,讨论通知,系统通知时间, 以及消息首条内容
        kcInput_time =getIntent().getLongExtra("kcInput_time",0l);//课程通知时间
        tlInput_time = getIntent().getLongExtra("tlInput_time",0l);//讨论通知时间
//        sysInput_time = Long.parseLong(getIntent().getStringExtra("sysInput_time"));//系统通知时间

        //本地课程通知时间
        long msg_kc_localtime = Arad.preferences.getLong(LocalMark.MSG_KCINPUT_TIME.getName(),0l);
        //本地讨论通知时间
        long msg_tl_localtime = Arad.preferences.getLong(LocalMark.MSG_TLINPUT_TIME.getName(),0l);

        //判断有没有课程通知内容，没有的话隐藏整栏
        if (StringUtils.isNull(getIntent().getStringExtra("kctz"))) {
            kcRl.setVisibility(View.GONE);
        } else {

            kctz.setText(getIntent().getStringExtra("kctz"));
            kcTime.setText(getIntent().getStringExtra("kcTime"));//显示时间
            //判断是否显示小红点
            if (kcInput_time - msg_kc_localtime > 0) {
                kcMessage.setVisibility(View.VISIBLE);
            } else {

                kcMessage.setVisibility(View.GONE);
            }
        }

        if (StringUtils.isNull(getIntent().getStringExtra("tltz"))) {//判断有没有内容，没有的话隐藏整栏
            tlRl.setVisibility(View.GONE);
        } else {
            //显示讨论通知具体内容
            tltz.setText(getIntent().getStringExtra("tltz"));
            tlTime.setText(getIntent().getStringExtra("tlTime"));// 显示讨论通知时间；
            //判断是否显示小红点
            if (tlInput_time - msg_tl_localtime > 0) {

                tlMessage.setVisibility(View.VISIBLE);

            } else {
                tlMessage.setVisibility(View.GONE);
            }
        }

//        if (StringUtils.isNull(getIntent().getStringExtra("xttz"))) {//判断有没有内容，没有的话隐藏整栏
//            xtRl.setVisibility(View.GONE);
//        } else {
//            //显示系统通知具体内容-
//            xttz.setText(getIntent().getStringExtra("xttz"));
//            xtTime.setText(getIntent().getStringExtra("xtTime"));// 显示系统通知的时间
//            //判读是否显示小红点
//            if (sysInput_time == null || sysInput_time.equals(Arad.preferences.getString("sysInput_time"))) {
//                xtMessage.setVisibility(View.GONE);
//            } else {
//                xtMessage.setVisibility(View.VISIBLE);
//            }
//        }
    }


    //点击推送通知进入推送通知详情列表
    @OnClick(R.id.ts_rl)
    void tsMsg() {
        noticeInfo.put("status", 1);
        tsMessage.setVisibility(View.GONE);
        updateMsg(noticeInfo);
        startActivity(new Intent(MsgActivity.this, NoticeMsgActivity.class));
        AnimUtil.intentSlidIn(this);
        setResult(RESULT_OK);
    }

    private void updateMsg(HashMap<String, Object> noticeInfo) {
        PushNotice pushNotice = new PushNotice();
        pushNotice.setId(TypeConvert.objectToInt(noticeInfo.get("id")));
//        pushNotice.setNoticeDec(String.valueOf(noticeInfo.get("noticeDec")));
//        pushNotice.setNoticeId(new Integer(String.valueOf(noticeInfo.get("noticeId"))));
//        pushNotice.setNoticeUrl(String.valueOf(noticeInfo.get("noticeUrl")));
//        pushNotice.setNoticeTitle(String.valueOf(noticeInfo.get("noticeTitle")));
        pushNotice.setStatus(TypeConvert.objectToInt(noticeInfo.get("status")));
        pushNotice.setSuid(TypeConvert.objectToString(noticeInfo.get("suid")));
        noticeDao.updateNotice(pushNotice);
    }


    //点击课程通知进入课程通知详情列表
    @OnClick(R.id.kc_rl)
    void kcMsg() {
        Arad.preferences.putLong(LocalMark.MSG_KCINPUT_TIME.getName(), kcInput_time);//课程通知时间戳存本地
        Arad.preferences.flush();
        kcMessage.setVisibility(View.GONE);
        Intent intent = new Intent(this, CourseMsgActiity.class);
        startActivity(intent);
        AnimUtil.intentSlidIn(this);
        setResult(RESULT_OK);
    }


    //点击讨论通知进入讨论通知详情列表
    @OnClick(R.id.tl_rl)
    void tlMsg() {
        Arad.preferences.putLong(LocalMark.MSG_TLINPUT_TIME.getName(), tlInput_time);//讨论通知时间戳存本地
        Arad.preferences.flush();
        tlMessage.setVisibility(View.GONE);
        startActivity(new Intent(MsgActivity.this, DiscussMsgActivity.class));
        AnimUtil.intentSlidIn(this);
        setResult(RESULT_OK);
    }

    // 点击系统通知进入系统通知详情列表
    @OnClick(R.id.xt_rl)
    void xtMsg() {
    }

}
